<?php

require("./config.php");

if (!isset($_POST['req'])) {
    die("No request provided.");
} else {

    if (filter_input(INPUT_POST, 'req') == "olvidoContrasena") {

        $json = array("success" => false, "msg" => "");

        $user = $dbConn->real_escape_string(filter_input(INPUT_POST, 'user'));
        $pass = $dbConn->real_escape_string(filter_input(INPUT_POST, 'pass'));

        $hashed_pass = better_crypt($pass);

        $query = "SELECT TIPO_USUARIO FROM USUARIO WHERE PK_USUARIO_ID_USUARIO='" . $user . "';";
        $result = $dbConn->query($query);

        if ($tipoCont = mysqli_fetch_array($result, MYSQL_ASSOC)) {
            if ($tipoCont['TIPO_USUARIO'] != "contacto" && $tipoCont['TIPO_USUARIO'] != "profesor" && $tipoCont['TIPO_USUARIO'] != "admin") {
                $json['msg'] = "Nombre de usuario incorrecto, no se encuentra registrado. Por favor inténtelo de nuevo";
            } else {
                $queryC = "UPDATE USUARIO SET CLAVE_USUARIO='" . $hashed_pass . "' WHERE PK_USUARIO_ID_USUARIO='" . $user . "';";
                $resultC = $dbConn->query($queryC);

                $to;
                $to2;

                $from = "u563028542@srv24.main-hosting.eu"; //cambiar dependiendo el servidor

                $headers = "MIME-Version: 1.0\r\n";
                $headers .= "From: GeProCIS <$from>\r\n";
                $headers .= "Reply-To: $from\r\n";

                $title = "Recuperación de contraseña";

                $mensaje = "Sistema Gestor de la Cátedra de Ingeniería de Sistemas (GeProCIS), UNA\r\n\r\n"
                        . "Correo de recuperación de contraseña.\r\n"
                        . "Este correo contiene una contraseña generada por el sistema. Si desea "
                        . "cambiarla ingrese al sistema con los datos que se le detallan más abajo. "
                        . "Ingresando a su Perfil de Usuario podrá realizar el cambio de contraseña.\r\n\r\n"
                        . "A continuación se detallan sus datos de inicio de sesión, incluyendo su nueva contraseña.\r\n"
                        . "Nombre de Usuario: $user\r\n"
                        . "Nueva Contraseña: $pass\r\n\r\n"
                        . "Por favor no responder a este mensaje.";

                switch ($tipoCont['TIPO_USUARIO']) {
                    case "admin":
                        $query2 = "SELECT CORREO_ADMINISTRADOR FROM ADMINISTRADOR_GeProCIS WHERE PK_ADMINISTRADOR_ID_ADMINISTRADOR='" . $user . "';";
                        $result2 = $dbConn->query($query2);
                        $info2 = $result2->fetch_row();
                        $to = $info2[0];

                        $conExito = mail($to, $title, $mensaje, $headers);

                        if ($conExito != NULL) {
                            $json['success'] = true;
                            $json['msg'] = "Se ha enviado una nueva contraseña a su correo";
                        } else {
                            $json['msg'] = "El correo no fue enviado, por favor inténtelo de nuevo";
                        }
                        break;
                    case "contacto":
                        $query2 = "SELECT CORREO_CONTACTO FROM CONTACTO WHERE PK_CONTACTO_ID_CONTACTO='" . $user . "';";
                        $result2 = $dbConn->query($query2);
                        $info2 = $result2->fetch_row();
                        $to = $info2[0];
                        $conExito = mail($to, $title, $mensaje, $headers);

                        if ($conExito != NULL) {
                            $json['success'] = true;
                            $json['msg'] = "Se ha enviado una nueva contraseña a su correo";
                        } else {
                            $json['msg'] = "El correo no fue enviado, por favor inténtelo de nuevo";
                        }
                        break;
                    case "profesor":
                        $query2 = "SELECT CORREO1_PROFESOR, CORREO2_PROFESOR FROM PROFESOR WHERE PK_PROFESOR_ID_PROFESOR='" . $user . "';";
                        $result2 = $dbConn->query($query2);
                        $info2 = $result2->fetch_row();
                        $to = $info2[0];
                        $to2 = $info2[1];
                        $conExito = mail($to, $title, $mensaje, $headers);
                        
                        if ($to2 != NULL && $to2 != '') {
                            $conExito2 = mail($to2, $title, $mensaje, $headers);
                        }
                        if ($conExito != NULL) {
                            $json['success'] = true;
                            $json['msg'] = "Se ha enviado una nueva contraseña a los correos registrados";
                        } else {
                            $json['msg'] = "El correo no fue enviado, por favor inténtelo de nuevo";
                        }
                        break;
                }
            }
        } else {
            $json['msg'] = "Nombre de usuario incorrecto, no se encuentra registrado. Por favor inténtelo de nuevo";
        }
        print(json_encode($json));
    }
}